package my.edu.model.information.service;

import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import my.edu.common.domain.PageDTO;
import my.edu.common.domain.PageVO;
import my.edu.model.information.entity.Account;
import my.edu.model.information.entity.Accounttype;
import my.edu.model.information.entity.dto.AccountSaveDTO;
import my.edu.model.information.entity.dto.AccountSearch;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface IAccountService extends IService<Account> {
    void savenew(AccountSaveDTO accountSaveDTO);

    List<Accounttype> getAccountType();

    void updateByDTO(AccountSaveDTO accountSaveDTO);

    void addBalance(Map<Long, BigDecimal> accountIdToTotalAmountMap);

    void  subBalance(Map<Long, BigDecimal> accountIdToTotalAmountMap);

    String getAccountNameById(Long settlementAccountId);

    void setStatus(List<Long> longs, int status);

    PageVO<Account> list(PageDTO pageDTO, AccountSearch accountSearch);

    JSONArray listOnly();

    void checkAccount(Long settlementAccountId);

    JSONObject getListWithBalance(PageDTO pageDTO, String name, String serialNo);
}
